package main

import (
	"fmt"
)

/**
执行用时：0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗：2.2 MB, 在所有 Go 提交中击败了19.16%的用户
 */
func rotate(matrix [][]int)  {

	n := len(matrix)

	// 上下翻转
	for i := 0; i < n; i++ {
		for j, k := 0, n - 1; j < k; j, k = j + 1, k - 1 {
			matrix[j][i], matrix[k][i] = matrix[k][i], matrix[j][i]
		}
	}
	// 按主对角线(左上到右下)翻转
	for i := 0; i < n; i++ {
		for j := 0; j < i; j++ {
			matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
		}
	}
}

func main() {

	matrix := [][]int{
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9},
	}
	rotate(matrix)
	fmt.Println(matrix)
}
